package lzyc.pointsManagement.business.userdept.service;

/**
 * 
 * Description: date: 2024/3/17 12:29
 * 
 * @author yangyang
 */

import lzyc.pointsManagement.business.userdept.domain.SysUserDept;
import lzyc.pointsManagement.common.core.domain.entity.SysDept;
import lzyc.pointsManagement.common.core.domain.entity.SysUser;

import java.util.List;

/**
 * SysUserDeptService 用户部门基本信息
 * 
 * @author 杨某人
 * @version 2024/03/17 12:29
 **/
public interface SysUserDeptService {
    /**
     * 分页获取用户列表
     * 
     * @param user
     * @return
     */
    List<SysUserDept> selectUserList(SysUser user);

    /**
     * 新增
     * 
     * @param userDept
     * @return
     */
    int addSave(SysUserDept userDept);

    /**
     * 修改
     * 
     * @param userDept
     * @return
     */
    int editSave(SysUserDept userDept);

    /**
     * 批量删除
     * 
     * @param ids
     * @return
     */
    int deleteUserByIds(String ids);

    /**
     * 通过ID查询
     * 
     * @param userId
     * @return
     */
    SysUserDept selectUserById(Long userId);

    /**
     * 校验用户名是否唯一
     * 
     * @param user
     * @return
     */
    boolean checkLoginNameUnique(SysUserDept user);

    /**
     * 获取已读用户列表
     *
     * @param projectID 事项ID
     * @return
     */
    List<SysUserDept>  userRead(String projectID);

    /**
     * 获取未读用户列表
     *
     * @param projectID 事项ID
     * @return
     */
    List<SysUserDept>  userUnread(String projectID);


    /**
     * 转SysUserDept
     * @param sysUser
     * @return
     */
    SysUserDept  toSysUserDept(SysUser sysUser);


    /**
     * 转SysUser
     * @param sysUserDept
     * @return
     */
    SysUser  toSysUser(SysUserDept sysUserDept);

    /**
     * 通过loginName查询
     * @param loginName
     * @return
     */
    SysUserDept selectUserByLoginName(String loginName);

    /**
     *
     * @param dept
     * @return
     */
    List<SysDept> deptList(SysDept dept);

    /**
     *
     * @param group
     * @return
     */
    List<SysDept> groupList(SysDept group);
}
